/**
 * 历史记录服务
 */
import { config } from '../config';

export class HistoryService {
  /**
   * 保存转换结果到历史记录
   * @param {Object} result 转换结果
   */
  static async saveToHistory(result) {
    try {
      const history = await this.getHistory();
      
      const newItem = {
        id: Date.now(),
        timestamp: new Date().toISOString(),
        text: result.text,
        url: window.location.href,
        title: document.title
      };

      history.unshift(newItem);
      
      // 限制历史记录数量
      if (history.length > config.storage.maxHistoryItems) {
        history.pop();
      }

      await chrome.storage.local.set({
        [config.storage.historyKey]: history
      });

      return newItem;
    } catch (error) {
      console.error('保存历史记录失败:', error);
      throw error;
    }
  }

  /**
   * 获取历史记录
   * @returns {Promise<Array>}
   */
  static async getHistory() {
    try {
      const data = await chrome.storage.local.get(config.storage.historyKey);
      return data[config.storage.historyKey] || [];
    } catch (error) {
      console.error('获取历史记录失败:', error);
      return [];
    }
  }

  /**
   * 清除历史记录
   */
  static async clearHistory() {
    try {
      await chrome.storage.local.remove(config.storage.historyKey);
    } catch (error) {
      console.error('清除历史记录失败:', error);
      throw error;
    }
  }
} 